////获取购物车数据,生成n多个表格行tr,并填充购物车数据////
$(function () {
////start////
    var lc = window.localStorage;
//先拿到表格行元素,以便生成更多类似的行,并填充数据,最后执行添加
    var mycars = $(".cars");

////1.浏览购物车cart.html第145行
    function displayCarts() {
        //var myths =mycars.children("th");
        //初始化第一行数据
        var myths = $(".cars>th");
        //生成js对象
        var key0 = lc.key(0);
        var json = lc.getItem(key0).trim();
        var obj0 = JSON.parse(json);
        //(1)获取购物车第一个商品,并渲染数据
        //th:1,3,4,5,6
        myths.eq(1).children("a:first").children("img").attr('src', '/images/' + obj0.pic + '.jpg');
        myths.eq(1).children("a:last").text(obj0.intro);
        myths.eq(1).children("input").val(obj0.pid);
        myths.eq(3).children("p:first").text(obj0.price);
        myths.eq(3).children(".red").text(obj0.sale);
        myths.eq(4).children("input").val(obj0.num);
        myths.eq(5).text((obj0.sale) * (obj0.num));
        //用于删除
        myths.eq(6).children("a").attr("title", obj0.cartkey);
        //(2)通过clone与for批量生成tr,填充对应的数据,并添加元素
        for (var i = 1; i < lc.length; i++) {
            // 生成js对象
            var key = lc.key(i);
            var strjson = lc.getItem(key).trim();
            var cart = JSON.parse(strjson);
            //通过jquery的克隆生成新的行元素
            var newtr = mycars.clone();
            //再获取多个单元格元素,生成数组对象
            var newths = newtr.children("th");
            newths.eq(1).children("a:first").children("img").attr('src', '/images/' + cart.pic + '.jpg');
            newths.eq(1).children("a:last").text(cart.intro);
            newths.eq(1).children("input").val(cart.pid);
            newths.eq(3).children("p:first").text(cart.price);
            newths.eq(3).children(".red").text(cart.sale);
            newths.eq(4).children("input").val(cart.num);
            newths.eq(5).text((cart.sale) * (cart.num));
            //用于删除
            newths.eq(6).children("a").attr("title", cart.cartkey);
            //before/after,在某个元素外头的前边或后边添加元素
            mycars.after(newtr);
        }//for
    }

//方法调用,显示购物车中的商品
    displayCarts();
////2.删除购物车
    var btnDel = $(".del-cart");
    //如果无效,请清浏览器缓存
    btnDel.click(function () {
      //  2.1删除当前行
        var flag = confirm("真的删除吗?")
        if (flag) {
            //删除当前表格行
            $(this).parent("th").parent("tr").remove();
            //    删除lc中的数据
            var cartkey = $(this).attr("title");
            //通过键名同步删除保存的数据
            lc.removeItem(cartkey);
        }
    });
    //2.2删除部分或全部
    var delMore = $(".btn-delete");
    var allck = $("#allck");
    //监听是否全选,是则选中所有待删商品
    allck.click(function () {
        var fg = $(this).prop("checked");
        //反复设置所有选中状态
        $(".cars").children("th").children("input").prop("checked", fg);
        //来回切换fg的值true/false
        fg = !fg;
    });
    delMore.click(function () {
        var allflag = allck.prop("checked");
        //找到所有的购物车商品
        var cars = $(".cars");
        if (!allflag) {
            var temp = confirm("真的要删除吗?")
            for (var i = 0; i < cars.length; i++) {
                var flag = cars.eq(i).children("th").children("input").prop('checked');
                if (flag) {
                    if (temp) {
                        //删除渲染的部分商品
                        cars.eq(i).remove();
                        //  同步在数据存储对象lc中删除选中的商品信息
                        var key = cars.eq(i).attr("title");
                        lc.removeItem(key);
                    }
                }
            }
        } else {//全选按钮
            //清空购物车
            var flag = confirm("真的要清空吗?")
            if (flag) {
                //清空渲染的元素
                cars.remove();
                //同步删除localStorage中的所有商品信息
                lc.clear();
            }
        }
    });
////3.购物车点击去付款后,生成订单,选择多个商品生成订单
    var gopay = $('#go-pay');
    gopay.click(function () {
        //存选中的多个商品
        var tempArray = [];
        //获取用户id,以下值不正确则会出现异常
        var uid = $(".uid").val();
        //拿到购物车中所有选中的商品
        var inputs = $(".cars>th>input[type='checkbox']:checked");
        var carsok = inputs.parent("th").parent(".cars");
        var obj=new Object();
        for (var i = 0; i < carsok.length; i++) {
            var pid = carsok.eq(i).children('th').eq(1).children("input").val();
            //var pic = carsok.eq(i).children('th').eq(1).children("a:first").children("img").attr('src');
            //var intro = carsok.eq(i).children('th').eq(1).children("a:last").text();
            var sale = carsok.eq(i).children('th').eq(3).children(".red").text();
            var num = carsok.eq(i).children('th').eq(4).children("input").val();
            //创建js对象,生成订单只需四个属性值,其它后台生成
            obj = {
                'uid': uid,
                'pid': pid,
                'num': num,
                'sale': sale
            }
            tempArray[i] = obj;
        }//for
        //转换成json字符串数组
        var jsonArray = JSON.stringify(tempArray);
        //alert("jsonArray:"+jsonArray)
        //去支付页并传参
        if(jsonArray.length>0){
            location.href = "/order/goPay?jsonArray=" + jsonArray;
        }
    });
////4.到订单页
    var btnOrder = $("#go-order");
    btnOrder.click(function () {
        var uid = $(".uid").val().toString().trim();
        if (uid == '' || uid == 'undefined' || uid == null) {
            alert("请您登录!");
        }else{
            location.href="/order/goDingdan?uid="+uid;
        }
    });
////the-end////
})